package com.ctg.payroll2.service.social;

import java.sql.SQLException;
import java.util.List;

import com.ctg.payroll2.bean.filter.social.CsEmplsocialFilter;
import com.ctg.payroll2.bean.filter.social.PbEmployeeFilter;
import com.ctg.payroll2.bean.po.social.CsEmplsocial;
import com.ctg.platform.util.Page;

/**
 * 员工社保档案管理
 * @author 鲁力 2009-9-1 下午07:05:31
 *
 */
@SuppressWarnings("unchecked")
public interface CsEmplsocialService {
	/**
	 * 员工社保档案翻页查询
	 * @param filter 翻页查询条件
	 * @return 翻页查询结果
	 */
	Page queryCsEmplsocial(CsEmplsocialFilter filter);
	/**
	 * 社保项目翻页查询
	 * @param filter 翻页查询条件
	 * @return 翻页查询结果
	 */
	Page queryPbSocialItemsResult(CsEmplsocialFilter filter);
	/**
	 * 未社保员工查询
	 * @param filter
	 * @return
	 */
	Page queryCsEmployee(PbEmployeeFilter filter);
	/**
	 * 推荐社保模板翻页查询
	 * @param filter 推荐社保模板查询过滤器
	 * @return 翻页查询结果
	 */
	Page queryRecomSocialTemplate(CsEmplsocialFilter filter);
	/**
	 * 推荐社保模板细项翻页查询
	 * @param filter 推荐社保模板查询过滤器
	 * @return 翻页查询结果
	 */
	List queryRecomSocialTemplateDetail(CsEmplsocialFilter filter);
	/**
	 * 客户社保模板翻页查询
	 * @param filter 客户社保模板查询过滤器 
	 * @return 翻页查询结果
	 */
	Page queryCsSocialTemplate(CsEmplsocialFilter filter);
	/**
	 * 客户社保细项查询
	 * @param filter 客户社保模板查询过滤器 
	 * @return 翻页查询结果
	 */
	List queryCsSocialTemplateDetail(CsEmplsocialFilter filter);
	/**
	 * 员工社保档案详细信息翻页查询
	 * @param filter
	 * @return
	 */
	Page querycsEmplsocialDetails(CsEmplsocialFilter filter);
	/**
	 * 新增员工社保档案
	 * @param csEmplsocialList 员工社保档案
	 * @param empId 雇员id
	 * @throws SQLException
	 */
	void insertCsEmplsocial(List<CsEmplsocial> csEmplsocialList)throws SQLException;
	/**
	 * 更新员工社保档案
	 * @param addsList 新增的list
	 * @param modifList 修改的list
	 * @param delsList
	 * @param user
	 */
	void updateCsEmplsocial(List<CsEmplsocial> addsList,
			List<CsEmplsocial> modifList, List<CsEmplsocial> delsList)throws SQLException;
	
	List getEmployeeBySocialItem(CsEmplsocialFilter filter) throws SQLException;
	
	void batchAdjustSocial(List<CsEmplsocial> list) throws SQLException, Exception;
	/**
	 * 检查员工的社保项目是否已经计算过
	 * @param csEmplsocial
	 * @return
	 * @throws SQLException
	 */
	String checkEmpSSocialItemIsCaled(CsEmplsocial csEmplsocial) throws SQLException;
	int bjrjg(CsEmplsocial csEmplsocial) throws SQLException;
}
